import { msg } from './util.js'

// #ifndef H5
// 非h5端，使用测试服务器地址
let BASE_URL = ''
// #endif

// #ifdef H5
// h5端，进行代理转发
let BASE_URL = '/api'
// #endif

// 导入Vuex store
import store from '@/store/index.js'

/**
 * 上传图片函数
 * @param {Object} options - 上传配置选项
 * @returns {Promise} 返回包含上传结果的Promise对象
 */
const upload = (options = {}) => {

    return new Promise((resolve, reject) => {

        // 判断是否登录，登录后才可以上传图片
        // 如果没有访问令牌，则提示用户登录并跳转到登录页面
        if(!accessToken) {
            uni.showToast({title: '请先登录', icon: 'none'})
            setTimeout(() => {
                uni.navigateTo({
                    url: '/pages/auth/login'
                })
            }, 500)
            return
        }

        // 调用uni.uploadFile发起文件上传请求
        uni.uploadFile({
            url: BASE_URL + options.url,                    
            filePath: options.filePath,                     
            name: options.name || 'file',                   
            formData: options.data || {},                   
            timeout: 8000,                                  
            header: {'Authorization': `Bearer ${accessToken}` },
            success: (res) => {                             
                // 判断HTTP状态码是否为200
                if(res.statusCode === 200) {
                    console.log('res.data', res.data)
                    resolve(JSON.parse(res.data))
                }else {
                    
                    reject(res)
                }
            },
            fail: (err) => {                                                
                msg('请求接口失败')              
                reject(err)
            },
        })
    })
}

export default upload
